Micron Document
🎖️GitЯра🎖️

Node / meshtastic / Meshtastic-Android / files / CONTRIBUTING.md

Displaying Rendered • View rawDownload

CONTRIBUTING.md node_list_molecule (9b6cb4ee) Text, 4.50 KB

Contributing to Meshtastic-Android

Thank you for your interest in contributing to Meshtastic-Android! We welcome contributions from everyone. Please take a moment to review these guidelines to help us maintain a high-quality, collaborative project.

How to Contribute

Fork the repository and create your branch from T383838main or the appropriate feature branch.
Make your changes in a logical, atomic manner.
Test your changes thoroughly before submitting a pull request.
Submit a pull request (PR) with a clear description of your changes and the problem they solve.
• If you are addressing an existing issue, please reference it in your PR (e.g., T383838Fixes #123).

Code Style

• Follow the Kotlin Coding Conventions for Kotlin code.
• Use Android Studio's default formatting settings.
• We use spotless for automated code formatting. You can run T383838./gradlew spotlessApply to format your code automatically.
• You can also run T383838./gradlew spotlessInstallGitPrePushHook --no-configuration-cache to install a pre-push Git hook that will run a T383838spotlessCheck.
• Write clear, descriptive variable and function names.
• Add comments where necessary, especially for complex logic.
• Keep methods and classes focused and concise.
• Use localised strings; edit the English strings.xml file. CrowdIn will manage translations to other languages.
• For example,

T282828
T8b949e// instead of hardcoding a string in your code:
Te6edf3TextTb4b4b4(Ta5d6ff"Ta5d6ffSettingsTa5d6ff"Tb4b4b4)

T8b949e// use the localised string resource:
Te6edf3TextTb4b4b4(Te6edf3stringResourceTb4b4b4(Te6edf3RTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3settingsTb4b4b4)Tb4b4b4)


Linting

Meshtastic-Android uses Detekt for static code analysis and linting of Kotlin code.

• Run T383838./gradlew detekt before submitting your pull request to ensure your code passes all lint checks.
• Fix any Detekt warnings or errors reported in your code.
• It is possible to suppress warnings individually, but this should be used very sparingly.
• You can find Detekt configuration in the T383838config/detekt directory. If you believe a rule should be changed or suppressed, discuss it in your PR.

Consistent linting helps keep the codebase clean and maintainable.

Testing

Meshtastic-Android uses both unit tests and instrumented UI tests to ensure code quality and reliability.

Unit tests are located in T383838app/src/test/java/ and should be written for all new logic where possible.
Instrumented tests (including UI tests using Jetpack Compose) are located in T383838app/src/androidTest/java/. For Compose UI, use the Jetpack Compose Testing APIs.

Guidelines for Testing

• Add or update tests for any new features or bug fixes.
• Ensure all tests pass by running:
• T383838./gradlew test for unit tests
• T383838./gradlew connectedAndroidTest for instrumented tests
• For UI components, write Compose UI tests to verify user interactions and visual elements. See existing tests in T383838DebugFiltersTest.kt for examples.
• If your change is difficult to test, explain why in your pull request.

Comprehensive testing helps prevent regressions and ensures a stable experience for all users.


Pull Requests

• branches should start with:
• bugfix
• enhancement
• dependencies
• repo
• reserved (release, automation)
• Ensure your branch is up to date with the latest T383838main branch before submitting a PR.
• Provide a meaningful title and description for your PR.
• Inlude information on how to test and/or replicate if it is not obvious.
• Include screenshots or logs if your change affects the UI or user experience.
• Be responsive to feedback and make requested changes promptly.
• Squash commits if requested by a maintainer.

Issue Reporting

• Search existing issues before opening a new one to avoid duplicates.
• Provide a clear and descriptive title.
• Include steps to reproduce, expected behavior, and actual behavior.
• Attach logs, screenshots, or other helpful context if applicable.

Community Standards

• Be respectful and considerate in all interactions.
• The Meshtastic Android project is subject to the code of conduct for the parent project, which can be found here:
• Help others by reviewing pull requests and answering questions when possible.

Thank you for helping make Meshtastic-Android better!

Served by rngit 1.4.2 - Generated in 0.04s